package com.alstudio.net.protocol.xmpp;

import java.io.IOException;
import java.util.HashMap;

import com.alstudio.net.callback.XmppEventListener;
import com.alstudio.net.protocol.xmpp.packact.IQ;
import com.alstudio.net.protocol.xmpp.packact.IQNameSpace;
import com.alstudio.net.protocol.xmpp.packact.Message;
import com.alstudio.net.protocol.xmpp.packact.Presence;
import com.alstudio.net.protocol.xmpp.parser.iq.FeedBackIQPackactParser;
import com.alstudio.net.protocol.xmpp.parser.iq.IQPackageCallback;
import com.alstudio.net.protocol.xmpp.parser.message.MessageParser;

public class XmppParseConfigue {

	private HashMap<String,IQPackageCallback> map = new HashMap<String, IQPackageCallback>();
	

	public XmppParseConfigue() {
		registerIQParseMethod();
	}
	
	
	public void registerIQParseMethod()
	{
		map.put(IQNameSpace.NS_SUGGEST, new FeedBackIQPackactParser() {});
	}
	
	public void registerMessageParseMethod()
	{
		
	}
	
	public void registerPresenceParseMethod()
	{
		
	}
	
	public synchronized void getIQParser(IQ packact,String stream,XmppEventListener listener)
	{
		if(map.get(packact.getNameSpace()) != null)
		{
			IQPackageCallback callback = map.get(packact.getNameSpace());
			try {
				callback.parseIQPackage(packact,stream,listener);
			} catch (IOException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
		}
	}
	
	public synchronized void getMessageParser(Message msg,String stream,XmppEventListener listener)
	{
		MessageParser parser = new MessageParser(msg,stream, listener);
		parser.startParseMessage();
	}
	
	public synchronized void getPresenceParser(Presence msg,String stream,XmppEventListener listener)
	{
		
	}
	
}
